{
  qtModule,
  stdenv,
  lib,
  bluez,
  libevdev,
  libX11,
  pkg-config,
  qtbase,
  udev,
  wrapQtAppsHook,
}:

qtModule {
  pname = "qtsystems";

  outputs = [
    "out"
    "dev"
  ]
  ++ lib.optionals stdenv.hostPlatform.isLinux [
    "bin"
  ];

  propagatedBuildInputs = [
    qtbase
  ];

  nativeBuildInputs = [
    pkg-config
    wrapQtAppsHook
  ];

  buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
    bluez
    libevdev
    libX11
    udev
  ];

  qmakeFlags = [
    "CONFIG+=git_build"
  ]
  ++ lib.optionals stdenv.hostPlatform.isLinux [
    "CONFIG+=ofono"
    "CONFIG+=udisks"
    "CONFIG+=upower"
  ];

  postFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
    wrapQtApp $bin/bin/servicefw
  '';

  meta = {
    maintainers = with lib.maintainers; [ OPNA2608 ];
  };
}
